home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 142
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z
/
Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin
/
ikap
/
etc2
/
src.lzh
/
pcm8call.s
< prev
next >
Wrap
Text File
|
2000-01-10
|
986b
|
58 lines
* pcm8call.s PCM8.x 用関数
.include IOCSCALL.MAC
.xdef _Pcm8KeepCheck,_Pcm8Play
.text
.even
_Pcm8KeepCheck: * PCM8 が常駐しているか調べる
* out : d0.l = 0 常駐している
* < 0 〃 していない
movem.l d1/a0-a1,-(sp)
suba.l a1,a1
IOCS _B_SUPER
move.l d0,-(sp) **
moveq.l #0,d1 * d1.l = 返り値
move.l $88.w,a0
subq.w #8,a0
cmpi.l #'PCM8',(a0)+
bne 1f
cmpi.b #'/',(a0)+
beq 2f
1: moveq.l #-1,d1
2:
move.l (sp)+,d0 **
bmi @f * 既にスーパーだった
movea.l d0,a1
IOCS _B_SUPER
@@:
move.l d1,d0
movem.l (sp)+,d1/a0-a1
rts
*********************************************************
_Pcm8Play: * PCM を演奏する
* in :
* Pcm8Play(int channel, int info, char *addr, int length);
* out : d0.l = 正常終了
link a6,#0
movem.l d1-d2/a0-a2,-(sp)
move.l 8(a6),d0 * チャンネル番号
move.l 12(a6),d1 * 音量<<16|周波数<<8|定位
movea.l 16(a6),a1 * 再生データアドレス
move.l 20(a6),d2 * データ長
TRAP #2
movem.l (sp)+,d1-d2/a0-a2
unlk a6
rts